This invention relates generally to a computer network data distribution and retrieval system capable of enabling the creation and presentation of a large, variably detailed, three-dimensional virtual reality world with data stored on distributed network sources and obtained by computer network transmission. A virtual world created using the data distribution and retrieval system of the present invention may be accessed by one or more users concurrently. The invention further relates to a method of user access to this virtual world, and a method of user interaction with objects and with other users in the world.
The creation of virtual reality (VR) worlds using data stored on sources distributed across a computer network, such that individual computer users may xe2x80x9centerxe2x80x9d the VR world by accessing the computer network, has been a longtime goal of computer scientists. Of particular interest are VR worlds that may reside on wide area computer networks such as the Internet.
Although hypothetical VR worlds that users may enter and interact withxe2x80x94and which are indistinguishable from actual realityxe2x80x94have been shown in television shows such as xe2x80x9cStar Trek: The Next Generationxe2x80x9d and xe2x80x9cMad About You,xe2x80x9d these representations, like most popular representations of VR technology, merely use videotape special effects to create an illusion of a virtual world. In contrast, a true virtual world is one in which every object, including a user""s image, is digitally coded and rendered.
A more authentic virtual world was used as a critical dramatic device in xe2x80x9cDisclosure,xe2x80x9d the recent movie based on the Michael Crichton novel of the same name. In that world, a user could retrieve data from electronic files by entering a digitally rendered filing room (representing a data storage device), opening a rendered filing cabinet (directory), and removing rendered sheets of paper (documents) stored in rendered manila folders (folders). Further, the user saw a digital image of himself and other users in the world. Like most of Crichton""s work, this representation of VR technology was just barely fictional.
However, to create its great level of user immersion in the VR world, the fictional VR system in xe2x80x9cDisclosurexe2x80x9d required that the user don a special full-body suit equipped with goggles and motion/position sensors. Further, the user could only access the world via a special gimbaled platform to which the suit was attached. Indeed, the use of goggles, gloves, and other apparatus is considered to be a necessary condition of virtual reality. It is understood for the purposes of the present invention that the discussion pertains to two-dimensional representations of a three-dimensional environment. Thus, the present invention relates to a virtual world that may be accessed solely via a flat display screen, although the use of other interface devices such as goggles, gloves, or VR suites is not precluded.
While recent advances in computer hardware and telecommunications technology have enabled the creation of rudimentary virtual worlds that may be accessed via a computer network, there remain several significant obstacles to creating a world in which motion is experienced in real-time and in which users can interact with inanimate objects in the world and with other users. The most significant problem with creating a large virtual reality world is that a world sufficiently large and detailed to be interesting contains more data than can be transmitted to the user""s computer in a reasonable amount of time. In addition, even with the tremendous advances in microprocessor speed, network speed, and data storage capability of personal computers, the amount of data and data processing required to create an interesting virtual world overwhelms currently available systems.
Previous attempts to create a large virtual reality world on a computer network, specifically the Internet, have been unable to clear this technological hurdle and accommodate the extensive data that current VR technology requires. Two current approaches to the problem that fail in different ways are current VRML implementation and Alpha World.
Currently, the most popular method of sending three-dimensional scenes across the Internet is using the Virtual Reality Modeling Language (VRML). VRML""s operating principle is that every object located in a particular scene is described fully by data contained in an ASCII text file. When a user wants to enter this scene, under current implementation the entire file is transferred en masse over the network to the user""s computer at one time. An application program on the user""s computer can then access and manipulate the text contained in this file to render the three-dimensional scene. Once the scene has been rendered, the user can move around in this world and interact with objects contained within it.
There are several problems with the current VRML implementations. The greatest flaw is that data is not efficiently transferred over the network. Also, the data storage and processing limitations of currently available personal computers limits the complexity of the scene. Finally, current VRML implementations require the user""s computer to do a lot of unnecessary work.
These current VRML implementations are inefficient in its use their network resources because they do not differentiate between relevant and irrelevant information. Each VRML file contains all of the data necessary to render completely every aspect of a particular scene. Although some of the objects coded by the data will be seen by the user at any one time, many more of the coded objects either are too far away from the user to be visible, are outside the user""s cone of vision and therefore not visible, or are hidden from the user""s view behind other objects. Thus, a lot of valuable time and resources are spent on transferring to the user""s computer and subsequent processing of data that is unused and unnecessary at any given time.
Also, the large data files needed to represent all objects in an entire scene take a long time to transfer over the network. The long transfer time causes the user to experience long data transfer delays when entering each new scene. Further, once the data files transferred, they are unwieldy for even the fastest computers to process. Thus, there are often long processing delays when the user moves about the scene. These seemingly interminable delays significantly detract from the virtual reality experience.
Another problem with the current VRML implementations is that network delays grow rapidly as the complexity of a scene is increased. If a scene has twice as much detail (e.g., twice as many objects), it will take twice as long to transfer across the network the data needed to create the scene. The scene designer faces an intractable problem when determining how much detail to put into a given scene. If too little detail is included, users who have fast network connections or who are willing to tolerate delays will not get as much graphic data as they would like. The virtual world is not as interesting to them. But, as more detail is included to make the scene interesting to this first group of users, other users with slower network connections or with computers that cannot render highly detailed worlds will be forced to wait a long time to receive information that their computers cannot display at an acceptable speed. Thus, regardless of how much detail is included in the scene, someone is bound not to have an enjoyable VR experience.
Also, these current VRML implementations place more demands on the user""s computer than is necessary. First, the user""s computer must store all of the data contained in each VRML file either in active memory (RAM) or cache it to disk, both of which slows the processing. Even worse, before rendering the scene, the computer must prioritize the data to determine what parts of the scene should be displayed, discarding the irrelevant data. This can be a time consuming process. Very few computer users today have enough RAM to easily store and manipulate all of the data needed to create a reasonably complex three-dimensional scene. Further adding to the problem, the computer cannot begin to do any processing until after the entire VRML file has been received. It can neither display a good approximation of the scene or begin to process the entire scene until after the file transfer is completed.
In conclusion, the current VRML implementations not the best way to provide three-dimensional worlds over a computer network because it uses excessive network bandwidth, it wastes computer resources, and it limits the complexity of the scenes that can be represented.
Alpha World is another attempt at creating a three-dimensional world on the Internet. Unlike the current VRML implementations, Alpha World does not send all at once all of the data needed to create the entire VR world. However, Alpha World has other deficiencies that detract from an interesting VR experience.
Alpha World""s approach is to divide the world into a grid of square regions. Only a few regions to each side of a viewer are retrieved from the network and displayed at any one time. This method allows the world to be arbitrarily large. However, there are many problems with Alpha World""s method; most of which relate to how it uses the network. The specific problems can be divided into two categories, Data Retrieval and Data Processing.
The first problem with Alpha World""s use of the network is in the actual data it requests. Specifically, Alpha World will request from the network objects that cannot be seen. Also, Alpha World fails to request objects that can be seen. For example, when a person walks down a street in Alpha World, the road appears to come to an end in front of him. He can not see into the distance. However, the program has spent valuable time requesting objects located inside a house that is to the left of the person and that cannot be seen.
The problem is most apparent when the user elevates above the world and looks down, taking a bird""s eye view. All the user sees is a small patch of streets and buildings directly below. There are no objects around this patch or on the horizon. However, the objects in this patch are unnecessarily detailed. The program spends time getting detail for small objects, while large objects that should be seen are not sent over the network. Alpha World could solve this problem by showing the objects contained in more squares of the grid. However, in order to maintain the same amount of data to be sent over the network, each square would have to have fewer objects. The result is that although Alpha World can be arbitrarily large, it cannot also be highly detailed.
This inefficient use of the network also leads to a problem in user interaction with the virtual world. When a new grid square gets close enough to the user, Alpha World requests from the network all of the data for all of the objects residing in that square. When these objects are received, they are displayed all at once. This effect leads to choppy movement of objects on the display screen, which detracts from the VR experience and makes it difficult for the user to interact with the objects in the world. Also, the objects are cached locally all at once when they are received. This procedure takes time and causes the entire program to pause for a couple of seconds. During this pause it is impossible for the user to interact with other people or objects in the virtual world.
Another problem with Alpha World is the time spent processing data for all of the hidden and irrelevant objects that it receives from the network. This inefficient use of processing power forces Alpha World to make sacrifices in the complexity of the world.
One such sacrifice is height. Although Alpha World looks like a three-dimensional world, it is actually flat. Objects cannot be stacked on top of each other. The term used to describe such a world is xe2x80x9ctwo and a half dimensional.xe2x80x9d Alpha World is not able to process enough information for a fully three-dimensional world because it spends too much time processing hidden objects. Also, Alpha World does not always display the world correctly. Sometimes objects in the distance are displayed in front of objects that are actually in the foreground.
This effect occurs because Alpha World does not z-buffer. Nor could Alpha World do this, as z-buffering would consume too much processing power since the data that codes for hidden objects would still need to be processed.
Another problem caused by Alpha World""s inefficient processing is that all objects must be simple shapes, since complex objects with many faces would require too much processing power to render. Thus, most of the objects in Alpha World are simple bitmaps which look the same from all angles. In addition, every object must fit within the square blocks. In order to build a larger object, these blocks must be pieced together. This limitation makes it difficult to create objects oriented at an angle. The result is that a town in Alpha World will look like it is laid out on a grid.
Other approaches to storing and retrieving information in a distributed network also have technological drawbacks that create user problems. For example, a major problem with the World Wide Web is that its servers often become overloaded. This overloading slows down the interaction with every user using that server. Physically, there is no need for this problem to occur. For every server that is overloaded, there are many other servers that are doing nothing, or very little. However, in the past, there has been no mechanism for distributing the load from the overburdened servers to these other unused or underused computers. What is needed is a method of propagating objects around the network in order solve the problem of server overload. In such a distributed, decentralized system, there would be no servers or clients. Each computer in the system would run a program that acts as a node.
In order to create a large virtual reality world for use on such a computer network, a new method is needed to transfer and process the enormous amount of data necessary to create a world that is both useful and interesting to the user. Because an interesting scene contains too much data to transmit all at once, the virtual world should be arranged such that detail for larger objects is represented by smaller objects. The goal should be to send the detail for only those objects that are most relevant to the user at each point in time. A good way to measure the relevance of an object is to measure its perceivability to the user.
Accordingly, it is an object of this invention to provide a computer network data distribution and retrieval system wherein each computer in the system acts as a node, thereby enabling perceivable objects to be propagated across the network and eliminating the incidence of server overload.
It is another object of the present invention to provide for creation on a computer network of a large and detailed virtual reality world that is both useful and interesting to the user.
It is a further object of the present invention to create a method of accessing a distributed virtual world such that the only data requested of the network data sources and transmitted to the requesting computer is the data that codes for objects that the viewer can perceive, and to prioritize the data to be sent in order of how well it can be perceived so that only relevant data is sent to the user.
It is another object of this invention to provide a computer network data distribution and retrieval system wherein detail for larger objects is represented by smaller objects in order to facilitate sending across the network only the objects that the viewer can perceive.
The objects of the present invention are met by a computer network data distribution and retrieval system comprising computers that function as data storage repositories and network nodes, and that also enable user access to data distributed across the network. Although the embodiment discussed is the use of the computer network data distribution and retrieval system of the presently claimed invention to create a three-dimensional virtual world, the present invention relates to all types of data that can be arranged in levels of increasing detail and for which a perceivability index can be measured.
There are no dedicated servers or clients in the computer network data distribution and retrieval system of the presently claimed invention. Each computer in the system runs an application program that enables that computer to act as a network node. When the application program needs an object that is not stored on the local computer, it sends a request to the remote computer that owns the object. If that remote owner computer is not already responding to requests from too many other requesting computers, the owner computer transmits the object to the requesting computer across the network and adds the requesting computer to the owner computer""s list of requesting computers to which it is responding.
However, if the computer that owns the object is already responding to its maximum number of requesting computers, the owner computer removes from its queue one of the prior requesting computers to which it had been responding. The owner computer also sends the removed requesting computer a list of all the other requesting computers to which the owner computer has been responding. The removed requesting computer can then send its data requests for more detail about the object to the computers in that list. This process continues until the computer that can respond to requests the fastest is found. Thus, perceivable objects will propagate around the network and every requesting computer will attempt to retrieve objects from nearby, fast computers.
Other objects, features and advantages will be apparent from the following detailed description of preferred embodiments thereof taken in conjunction with the accompanying drawings in which: